/* 
 * File:   telsort.h
 * Author: Jonas Delrue
 *
 * Created on March 22, 2010, 1:29 PM
 */

#ifndef _TELSORT_H
#define	_TELSORT_H
  void countingsort(std::vector<int> & data)
  {
       int lengte = data.size();
       
    int i,j,k=0,kleinste, grootste;
    // zoek kleinste en grootste
    kleinste = grootste = data[0];
    for(i=1;i<lengte;i++)
      if (data[i]<kleinste)
        kleinste=data[i];
      else if (data[i]>grootste)    
        grootste=data[i];
    int turven[grootste-kleinste+1];    // maak telarray<br>
    for(i=0;i<(grootste-kleinste+1);i++)
      turven[i]=0; // laat alle turven op nul beginnen
    for(i=0;i<lengte;i++)
      turven[data[i]-kleinste]++; // zet turven
    // sorteer data (zet turf "i" "j"x op plaats "k")
    for(i=kleinste;i<=grootste;i++)
      for(j=turven[i-kleinste];j>0;j--)
      {
         data[k] = i;
         k++;
      }
  }




#endif	/* _TELSORT_H */

